<

非推奨のスプラッシュ スクリーン API の移行

Flutter 2.5 より前は、Flutter アプリでスプラッシュを追加できました アプリケーションマニフェストファイルのメタデータ内で定義することで画面を表示します (AndroidManifest.xml)、実装することでprovideSplashScreen内部 彼らのFlutterActivity、 または両方。これはその間に一時的に表示されます Android 起動画面が表示されてから、Flutter が起動した後の時間 最初のフレームを描きました。このアプローチは、Flutter 2.5 以降では非推奨になりました。 Flutter は Android 起動画面を自動的に表示し続けるようになりました 最初のフレームを描画するまで。

カスタム スプラッシュ スクリーンの定義からカスタム スプラッシュ スクリーンの定義のみに移行するには アプリケーションの起動画面で、対応する手順に従います。 アプリケーションのカスタム スプラッシュ スクリーンがどのように定義されているか 2.5 リリースより前。

で定義されたカスタム スプラッシュ画面FlutterActivity

  1. アプリケーションの実装を見つけます。provideSplashScreen()その中でFlutterActivity消して。この実装には次のことが含まれます。 アプリケーションのカスタム スプラッシュ スクリーンの構築 としてDrawable。例えば:

    @Override
    public SplashScreen provideSplashScreen() {
        // ...
        return new DrawableSplashScreen(
            new SomeDrawable(
                ContextCompat.getDrawable(this, R.some_splash_screen)));
    }
    
  2. すぐ後のセクションの手順を使用して、Drawableスプラッシュ画面 (R.some_splash_screen前の例では) アプリケーションのカスタム起動画面として適切に設定されています。

マニフェストで定義されたカスタム スプラッシュ画面

  1. アプリケーションを見つけますAndroidManifest.xmlファイル。 このファイル内で、activityエレメント。 この要素内で、android:theme属性 そしてそのmeta-dataを定義する要素 スプラッシュ画面としてio.flutter.embedding.android.SplashScreenDrawable、 そしてそれを更新します。例えば:

    <activity
        // ...
        android:theme="@style/SomeTheme">
      // ...
      <meta-data
          android:name="io.flutter.embedding.android.SplashScreenDrawable"
          android:resource="@drawable/some_splash_screen"
          />
    </activity>
    
  2. もしandroid:theme属性が指定されていない場合は、属性を追加して、起動テーマを定義するアプリケーションの起動画面用。

  3. を削除しますmeta-dataFlutter が廃止されたため、要素 それを使用しますが、クラッシュを引き起こす可能性があります。

  4. で指定されたテーマの定義を見つけます。android:theme属性 アプリケーション内でstyle資力。このテーマで指定するのは、 アプリケーションの起動テーマ。次のことを確認してください。style属性はandroid:windowBackgroundカスタム スプラッシュ スクリーンの属性を変更します。例えば:

    <resources>
        <style
            name="SomeTheme"
            // ...
            >
            <!-- Show a splash screen on the activity. Automatically removed when
                 Flutter draws its first frame -->
            <item name="android:windowBackground">@drawable/some_splash_screen</item>
        </style>
    </resources>